Houdini数学 : 内積の計算
内積について
ベクトル$ \vec{A} = \begin{pmatrix} {x_1} \\\ {y_1} \\\ {z_1} \end{pmatrix}, \vec{B} = \begin{pmatrix} {x_2} \\\ {y_2} \\\ {z_2} \end{pmatrix}の内積$ \vec{A} \cdot \vec{B}は以下のように計算できます。
$ \vec{A} \cdot \vec{B} = \begin{pmatrix} {x_1} \\ {y_1} \\ {z_1} \end{pmatrix} \cdot \begin{pmatrix} {x_2} \\ {y_2} \\ {z_2} \end{pmatrix} = x_1 \cdot x_2 + y_1 \cdot y_2 + z_1 \cdot z_2
Houdini
1. 点を追加
Addノードで点を追加します。点の座標は(0, 0, 0)です。
https://gyazo.com/2c69535f6594730c9226f3f5b46114b6
https://gyazo.com/391059c98153196f7f753086e20a9ef2
Geometryスプレッドシートを見ると、 ポイントの座標が(0, 0, 0)になっていることが分かります。
2. 内積を計算
今回は $ \vec{A} = \begin{pmatrix} 1 \\\ 2 \\\ 3 \end{pmatrix}, \vec{B} = \begin{pmatrix} 4 \\\ 5 \\\ 6 \end{pmatrix} の内積$ \vec{A} \cdot \vec{B} を計算してみましょう。
$ 1 \cdot 4 + 2 \cdot 5 + 3 \cdot 6 = 4 + 10 + 18 = 32となります。
AddノードにAttribuetWrangleノードを接続し、内積を計算するVEXコードを記述します。
code:AttributeWrangle(c)
vector A = {1, 2, 3}; // ベクトルA
vector B = {4, 5, 6}; // ベクトルB
@P.x = dot(A, B); // 内積を計算してx成分に設定
https://gyazo.com/9361a762a216434c24c23550452688f4
Geometry SpreadSheetを見ると、x成分が32になっています。 数式の計算結果とHoudini上の結果が一致しました。
https://gyazo.com/1e3ccc509a44c5622acd195b175286eb